Point of sale device power management and undervoltage protection

ABSTRACT

A point-of-sale (POS) device includes a processor, a battery, a transaction object reader, a printer with a printer controller, and optionally a temperature sensor. The processor determines a present power discharge capability rate of the battery, optionally based on a temperature measured by the temperature sensor. The processor also calculates a first estimated power draw rate based on a first setting value for at least one of the components of the POS device, such as the printer. If the first estimated power draw rate is dangerously close to the present power discharge capability rate of the battery, a second estimated power draw rate is calculated based on a second setting value for the one or more components. If the second estimated power draw rate is no longer dangerously close to the present power discharge capability rate of the battery, the components are set to the second settings value.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/582,166, filed Apr. 28, 2017, entitled “POINT OF SALE DEVICE POWERMANAGEMENT AND UNDERVOLTAGE PROTECTION” which is hereby incorporated byreference herein in its entirety.

BACKGROUND

A point of sale (“POS”) device can include various components, such as aprocessor, a card reader, a network connection interface, and a receiptprinter. Card readers are typically built to read transactioninformation from cards, such as credit cards or debit cards.

Printers allow text and other visual content to be printed onto papervia transfer of liquid ink, of solid toner, or thermal modification ofpaper. Printers typically include various moving parts and/or otherhigh-energy components, such as lasers or thermal print heads. As such,printers are some of the most energy-hungry devices typically used inpersonal computing.

Portable devices are often powered by rechargeable or replaceablebatteries with limits on their power discharge capability rates. Thatis, batteries are typically only able to discharge up to a certainamount of current, power, or voltage. When a battery or other powersource is unable to supply enough power to the components it isconnected to, this can cause various issues. These issues can includeundervoltage, a situation where average voltage of powered componentsdrops below intended or demanded levels, sometimes referred to as abrown-out. Undervoltages, or brownouts, can often result in poweredcomponents unable to perform the actions they are tasked with, and cansometimes result in permanent damage to the powered components. Whilelarge industrial machinery and municipal power grids can, in some cases,siphon energy from backup power sources when necessary, portable devicesare typically limited to their respective batteries. POS devices facingbrownouts can cause financial issues such as failed payments or doublepayments or security issues related to storage of sensitive data.

Low temperatures exacerbate situations where brownouts may already be arisk. Batteries are typically capable of outputting energy at higherrates when they are at higher temperatures, and are only capable ofoutputting energy at lower rates when they are at lower temperatures. At−20 degrees Celsius (−4 degrees Fahrenheit), most batteries stopfunctioning entirely. Some batteries can even suffer permanent damage atlow temperatures, sometimes by developing permanent short circuits or byfrozen electrolytes such as lead acid cracking battery enclosures.Likewise, printers often fail to function properly at lowertemperatures, either due to an increase in ink viscosity, a decrease inlaser/toner fusion efficacy, or a decrease in thermal print headefficacy. Printers include many moving parts, causing printers to oftenbecome fragile at lower temperatures as well.

Thus, there is a need in the art for improved power management andundervoltage protection in portable point of sale (POS) devices,particularly at low temperatures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an architecture diagram of a point-of-sale (POS) device withpower management.

FIG. 2 is a perspective view of a point-of-sale (POS) device.

FIG. 3 is a flow diagram illustrating undervoltage protection based onmodification of printer settings.

FIG. 4 is a flow diagram illustrating undervoltage protection based onserialization of actions.

FIG. 5 is a chart illustrating multiple printer settings andcorresponding possible printer setting values.

FIG. 6 is a chart illustrating multiple miscellaneous settings andcorresponding possible miscellaneous setting values.

FIG. 7 is a bar chart comparing a power discharge capability rate torisk and safe power draw rates.

FIG. 8 is a block diagram of an exemplary computing device that may beused to implement an embodiment of the present invention.

DETAILED DESCRIPTION

A point-of-sale (POS) device includes a processor, a battery, atransaction object reader, a printer with a printer controller, andoptionally a temperature sensor. The processor determines a presentpower discharge capability rate of the battery, optionally based on atemperature measured by the temperature sensor. The processor alsocalculates a first estimated power draw rate based on a first settingvalue for at least one of the components of the POS device, such as theprinter. If the first estimated power draw rate is dangerously close tothe present power discharge capability rate of the battery, a secondestimated power draw rate is calculated based on a second setting valuefor the one or more components. If the second estimated power draw rateis no longer dangerously close to the present power discharge capabilityrate of the battery, the components are set to the second settingsvalue.

FIG. 1 is an architecture diagram of a point-of-sale (POS) device withpower management.

The architecture diagram of the POS device 100 of FIG. 1 includes a mainprocessor 105 in a housing 190, and optionally one or more secureprocessor(s) 110 within a secure internal enclosure 195 within thehousing 190. The main processor 105 may execute instructions to performa variety of tasks, which may include communicating with the one or moresecure processor(s) 110 as well as communicating with and/or controllingthe various components coupled directly or indirectly to the mainprocessor 105.

The main processor 105 is coupled to a main battery 140 and optionally abackup battery 145 in FIG. 1 . In some cases, the main battery 140 maybe rechargeable, while the backup battery 145 may be non-rechargeable.Ultimately, however, either or both of the batteries may be rechargeableor non-rechargeable. The main processor 105, main battery 140, and/orbackup battery 145 may also be connected to a power connector (notpictured) that can be connected to an external battery (not pictured),an external generator (not pictured), or a power outlet (not pictured).The power connector can be used to recharge the main battery 140 and/orbackup battery 145. The power connector can also be used to directlypower the processor 105 and all other components of the POS device 100,even if both the main battery 140 and backup battery 145 are missing.

The main processor 105 is coupled to a printer 170 via a printercontroller 160. The printer 170 may be used to print receipts, coupons,barcodes, quick-response (“QR”) codes, or some combination thereof. Theprinter 170 may be a thermal printer, a direct thermal printer, athermal transfer thermal printer, a solid-ink “phaser” printer, aninkjet printer, a thermal inkjet (“bubblejet”) printer, a continuousinkjet printer, a piezoelectric inkjet printer, a dye-sublimationprinter, a laser printer, an LED printer, or some combination thereof.The printer controller 160 may include a memory and/or a processor,microcontroller or ASIC (application specific integrated controller)with which it may adjust various printer setting values assigned tovarious printer settings 165 to control various aspects of the how theprinter 170 prints. Various exemplary printer settings 165 andcorresponding possible printer setting values are identified in FIG. 6 .In some cases, the printer controller 160 need not be a separatecomponent from the main processor 105, and the functions of the printercontroller 160 may simply be performed by the main processor 105. Inthat light, it should be understood that any actions described herein asbeing performed by the printer controller 160 can alternately oradditionally be performed by the main processor 105, and vice versa.

The main processor 105 is coupled to a temperature sensor 175 in FIG. 1. The temperature sensor may optionally include one or more thermistors,and may optionally be connected to the main battery 140 and/or to theprinter 170. The temperature sensor may include one or more of aNegative Temperature Coefficient (NTC) thermistor, a ResistanceTemperature Detector (RTD), a resistance thermometer, a thermocouple, aninfrared sensor, a bimetallic device, a thermometer, a change-of-statesensor, a semiconductor-based temperature sensor, a silicon diode orother diode with temperature-sensitive voltage characteristics, or somecombination thereof.

The main processor 105 may be connected to one or more antennas,including an 802.11 Wi-Fi antenna 155, a cellular phone network antenna150, a Bluetooth® antenna, a Bluetooth® Low Energy (BLE) antenna, anyother antennae or communication means discussed with respect to theoutput devices 850 or input devices 860 of FIG. 8, or some combinationthereof. The main processor 105 may alternately be connected to othermeans to networking, such as a wired Ethernet port.

The main processor 105 may be any type of processor 810 identified withrespect to FIG. 8 , and may be in some cases be part of, or include, anapplication-specific integrated circuit (ASIC). While the main processor105 and secure processor(s) 110 are illustrated as separate componentsin FIG. 1 , the main processor 105 and secure processor(s) 110 may insome cases be combined into a single component. It should be understoodthat any actions described herein as being performed by the secureprocessor(s) 110 can alternately or additionally be performed by themain processor 105, and that that any actions described herein as beingperformed by the main processor 105 can alternately or additionally beperformed by the secure processor(s) 110.

The secure internal enclosure 195 can include tamper protectioncircuitry 130, such as tamper traces or grids running along one or moresurfaces of the secure internal enclosure, allowing the secureprocessor(s) 110 to detect attempts to tamper with the secure internalenclosure 195 or any components within. For example, tamper protectioncircuitry 130 can detect attempts to open the secure internal enclosure195, to drill into the secure internal enclosure 195, to modify thesecure internal enclosure 195, or to flood the secure internal enclosure195 with conductive ink or other fluid. The tamper protection circuitry130 can do this by measuring voltages at one or more points along acircuit connected to the tamper traces or grids running along thesurface(s) of the secure internal enclosure 195, allowing the tamperprotection circuitry 130 to detect short circuits, breaks in thecircuit, or other changes in voltage outside of ordinary thresholdlevels, which would typically indicate a tampering attempt. Detection ofa tamper attempt could be used by the secure processor(s) 110 or mainprocessor 105 to disable at least a subset of the functions orcomponents of the POS device 100.

The secure internal enclosure 195 and its included tamper protectioncircuitry 130 can be used to protect any circuitry that reads, stores,or otherwise conveys sensitive information, such as credit or debit cardnumbers, near field communication (NFC) signal data from a NFC objectconveying transaction information, bank account information, othertransaction information, biometric information, identity information,Personal Identification Number (PIN) codes, handwritten signature scans,handwritten signatures entered via touch-sensitive surface, digitalcertificate signatures, symmetric keys, asymmetric public/private keys,and so forth.

Because information entered via a touch-sensitive screen surface layer125 of a touchscreen 210 may include sensitive information, such as PINcodes or handwritten signatures entered via touch-sensitive surface,circuitry reading inputs of the touch-sensitive surface may in somecases be housed in the secure internal enclosure 195, while thecircuitry of the display screen 120 of the touchscreen 210 might not be.Likewise, the POS device 100 may include other input devices 860 asdiscussed with respect to FIG. 8 , such as physical keypads, whosecircuitry might also be located in the secure internal enclosure 195 forthe same reasons. The touch-sensitive screen surface layer 125 may useany type of display discussed in reference to the display system 870 ofFIG. 8 , and may use capacitive touch sensing, resistive touch sensing,inductive touch sensing, or some combination thereof. For example, thetouch-sensitive screen surface layer 125 may utilize a Indium Tin Oxide(ITO) touch-sensitive layer or a printed ink touch-sensitive layer.

The secure processor(s) 110 are also connected to one or moretransaction object reader(s) 115. The transaction object reader(s) 115may include a magnetic stripe reader 235, an integrated circuit (IC)chip reader 225, a near field communication (NFC) reader, or somecombination thereof. The magnetic stripe reader 235 reads transactiondata from a magnetic stripe of a transaction object. The IC chip reader225 reads transaction data from an IC chip of a transaction object. TheIC chip may be a chip following Europay/Mastercard/Visa (“EMV”)standards, also known as an EMV chip. The NFC reader reads transactiondata from wireless NFC signals received from a transaction object. Thetransaction object may be a transaction card, such as a credit card or adebit card. The transaction object may be any type of NFC-capabledevice, such as an active NFC tag, a passive NFC tag, or a computersystem 500 as described with respect to FIG. 5 . In some cases, multipletransaction object readers 115 may share components—for example, the ICchip reader 225 and the NFC reader may share a contactless antenna. Oncethe transaction object reader(s) 115 retrieve the transaction data fromthe transaction object, the transaction object reader(s) 115 send thetransaction data to the secure processor(s) 110 and/or main processor105. The transaction object reader(s) 115 or secure processor(s) 110sometimes modify or encrypt the transaction data using an encryption keystored in a memory (not pictured) associated with the transaction objectreader(s) 115 and/or secure processor(s) 110 before sending it to themain processor 105.

The main processor 105 may also be connected to a memory 135 that storesvarious instructions to be executed by the main processor, such asinstructions corresponding to a financial transaction softwareapplication allowing the main processor 105 to receive transaction dataread by the transaction object reader(s) 115, optionally via the secureprocessor(s) 110, and to transmit that data to one or more financialtransaction processing server(s), such as credit or debit cardprocessing server(s) and/or bank server(s), thereby conducting afinancial transaction between a merchant and a buyer whose transactioninformation was read via the transaction object reader(s) 115. Thememory 135 may also store the printer settings 165 additionally oralternatively from the printer controller 160. The memory 135 may alsostore miscellaneous settings 185 pertaining to the main processor 105,the display screen 120, the touch-sensitive screen surface layer 125,the Wi-Fi antenna 155, the cellular antenna 150, and/or various othercomponents. Various exemplary miscellaneous settings 185 andcorresponding possible miscellaneous setting values are identified inFIG. 7 .

The main processor 105 may also be connected to at least one externalconnector 180, which may be an externally-facing female port or maleplug that may allow the POS device 110 to connect to other devices orpower sources. In some cases, the external connector 180 may allow thePOS device 100 to connect to any other computer system 800, or to anydevice including at least a subset of the components identified in FIG.8 or discussed in its description. The POS device 100 may be connectedto one or more peripheral devices or hubs via the at least one externalconnector 180. The POS device 100 may in some cases act as a peripheraldevice to a host device connected via the at least one externalconnector 180. In some cases, the external connector 180 may function asthe power connector discussed above with respect to the batteries140/145 and/or external power sources. In some cases, the externalconnector 180 may be a universal serial bus (USB) port/plug using anyUSB standard, including USB Type-A, USB Type-B, USB Type-C, USB 1.x, USB2.x, USB 3.x, USB 4.x, Thunderbolt, USB mini, USB micro, USB On-The-Go(OTG), any other USB standard, or some combination thereof. In othercases, the external connector 180 may be an Apple® Lightning® port/plug,an Ethernet port/plug, a fiber optic port/plug, a proprietary wiredport/plug. In other cases, the external connector 180 may be a wirelesstransceiver, such as one supporting a BLUETOOTH® wireless signaltransfer, a BLUETOOTH® low energy (BLE) wireless signal transfer, aradio-frequency identification (RFID) wireless signal transfer,near-field communications (NFC) wireless signal transfer, 802.11 Wi-Fiwireless signal transfer, cellular data network wireless signaltransfer, a radio wave signal transfer, a microwave signal transfer, aninfrared signal transfer, a visible light signal transfer, anultraviolet signal transfer, a wireless signal transfer along theelectromagnetic spectrum, or some combination thereof.

The POS device 100 may also include various additional or alternativeelements connected to the main processor 105 and/or the secureprocessor(s) 110, each of which may optionally be located in the secureinternal enclosure 195. Such additional or alternative elements mayinclude microphones. The additional or alternative elements may includecameras, such as visible light cameras, infrared cameras, ultravioletcameras, night vision cameras, or even ambient light sensors. Ambientlight sensors may optionally be coupled to the main processor 105 and/orthe display screen 120 to control brightness of the display screen 120and/or of a backlight of the display screen 120 in order to acclimatizeto the ambient light level around the POS device 100 and prevent thedisplay screen 120 from appearing too bright/harsh or too dim/unclear.The additional or alternative elements may include biometric sensors,such as fingerprint scanners, handprint scanners, voice authentication,facial recognition or iris scanners (using any of the camera typesdiscussed above), blood testers, DNA testers, or some combinationthereof. The processor(s) 105/110 may compare received biometric datafrom the buyer via the biometric sensors against databases stored withinthe memory 135 or accessible to the POS device 100 via a networkconnection via the Internet or a private network. The additional oralternative elements may include one or more accelerometer(s) and/or oneor more gyroscope(s), allowing the processor(s) 105/110 of the POSdevice 100 to react to being tilted, moved, or shaken, optionally asindications of tampering via the tamper protection circuitry 130 if thePOS device 100 is intended to be stationary. The additional oralternative elements may include one or more indicator lights, which maybe light-emitting diodes (LED) and may emit light, optionally at varyingbrightnesses and/or colors, to indicate a successful transaction, toindicate a failed transaction, to indicate that a card or othertransaction object should be presented/inserted/swiped, to indicate thata card or other transaction object should be removed, to indicate that auser input such as a PIN code must be input via the touch-sensitivedisplay screen 210, to indicate that an input via the touch-sensitivedisplay screen 210 has been received, to indicate successful connectionvia any of the antennae of the POS system 100, to indicate failure toconnect via any of the antennae of the POS system 100, to indicate asignal strength associated with any of the antennae of the POS system100, or some combination thereof. The additional or alternative elementsmay include any components illustrated in FIG. 8 or discussed in thedescription of FIG. 8 .

FIG. 2 is a perspective view of a point-of-sale (POS) device.

The POS device 100 of FIG. 2 may include at least a subset of thearchitecture and components illustrated in FIG. 1 or discussed withrespect to FIG. 1 , and optionally may include a subset of thearchitecture and components illustrated in FIG. 8 or discussed withrespect to FIG. 8 .

The POS device 100 of FIG. 2 may include one or more batteries 260,which may include one or more rechargeable batteries, one or morenon-rechargeable batteries, or some combination thereof. In some cases,one battery may act as a “main” battery, while another acts as a“backup” battery and serves to provide power to complete a transactionthat was started using power from the main battery if the main batterybecomes depleted or stops working due to a disconnected/poor electricalconnection, a short circuit, or a battery defect. The one or morebatteries 260 include the main battery 140 and optionally the backupbattery 145 of FIG. 1 .

Two transaction object readers 115 and corresponding card slotinterfaces are depicted in the POS device 100 of FIG. 2 . In particular,a card insertion slot 220 is illustrated allowing insertion of an ICchip card having an IC chip, such as an EMV chip. Transactioninformation is read from this IC chip by the IC chip reader 225 and thentransmitted on to the main processor 105 and/or secure processor(s) 110,optionally being encrypted at the transaction object (the IC chip card),at the IC chip reader 225, at the secure processor(s) 110, at the mainprocessor 105, or some combination thereof. A card swipe slot 230 isdepicted, through which a magnetic stripe card having a magnetic stripemay be swiped. In some cases one or more “swiper walls” may be includedalong the sides of the card swipe slot 230 to keep the card in the cardswipe slot 230 during the duration of the swipe. Transaction informationis read from this magnetic stripe by the magnetic stripe reader 235 andthen transmitted on to the main processor 105 and/or secure processor(s)110, optionally being encrypted at the transaction object (the IC chipcard), at the IC chip reader 225, at the secure processor(s) 110, at themain processor 105, or some combination thereof. An NFC antenna may alsobe included within or connected to the POS device 100, though it is notshown. Transaction information is read from an NFC-capable object by theNFC antenna and then transmitted on to the main processor 105 and/orsecure processor(s) 110, optionally being encrypted at the transactionobject (the IC chip card), at the IC chip reader 225, at the secureprocessor(s) 110, at the main processor 105, or some combinationthereof. In some cases, the NFC antenna and the IC chip reader 225 mayshare a contactless antenna.

The POS device 100 of FIG. 2 may include one or more processor(s) 265,including one or more main processor(s) 105 and one or more secureprocessor(s) 110 as depicted in FIG. 1 . Each of the one or moreprocessor(s) 265 may be any type of processor 510 discussed with respectto FIG. 5 . Each of the one or more processor(s) 265 may be connected toits own memory 820, mass storage 830, portable storage 840, outputdevices 850, input devices 560, or any other component discussed withrespect to FIG. 8 ; alternately, some of the one or more processor(s)265 may share such components.

The main processor(s) 105 and the one or more secure processor(s) 110may be divided to distribute different processes or control of differentcomponents to different processors. For example, the secure processor(s)110 may be connected to the transaction object reader(s) 115, where thesecure processor(s) 110 handle encryption of the transaction informationbefore that transaction information reaches the main processor 105.These secure processor(s) 110, along with components of the transactionobject reader(s) 115, may be housed in a secure internal enclosure 195within the POS device 100 (not shown in FIG. 2 ), where the secureinternal enclosure 195 includes tamper detection circuitry that may beconnected to the secure processor(s) 110 and/or to the main processor105. The tamper detection circuitry may include multiple voltage sensorswithin a tamper detection circuit that includes conductive tamper traceslining one or more surfaces of the secure internal enclosure 195, sothat any break in the tamper traces, or any short circuit caused byconnecting two tamper traces, can be detected. In this way, the tamperdetection circuit, and therefore the one or more processor(s) 265, candetect if someone has attempted to tamper with the secure internalenclosure 195, for example by attempting to open the secure internalenclosure 195, by drilling into a side of the secure internal enclosure195, by attempting to damage or disable the secure internal enclosure195, or by flooding the secure internal enclosure 195 with a conductivefluid. Some input components that may receive sensitive information suchas Personal Identification Number (PIN) codes, signatures, or biometricdata may also be enclosed in the secure internal enclosure 195, as maybe any memory or data storage components that store symmetric orasymmetric encryption/decryption security keys for encrypting and/ordecrypting transaction information. These input components may includetouch-sensitive screen surface layer 125 and related components of thetouch-sensitive display screen 210, biometric sensors, or a physicalkeypad.

It should be understood that any operation discussed herein as beingperformed by the main processor 105 can alternately or additionally beperformed by any combination of the one or more processor(s) 265, suchas the secure processor(s) 110 discussed above.

A touch-sensitive display screen 210 is illustrated as a component ofthe POS device 100, and may be secured to the POS device 100 so that itrepresents at least a portion of a face of the POS device 100. Forexample, the touch-sensitive display screen 210 may be on a top or frontface of the POS device 100. The touch-sensitive display screen 210 maybe on a diagonally angled face that is angled so as to be more easilyviewed by a buyer user or merchant user of the POS system 100. Thetouch-sensitive display screen 210 may be curved and may be on a curvedface that is angled so as to be more easily viewed by a buyer user ormerchant user of the POS system 100. In some cases, the touch-sensitivedisplay screen 210 may be mounted to the POS system 100 in such a waythat the angle of the display with respect to a housing for the rest ofthe POS device 100 may be adjusted by a buyer user or merchant user ofthe POS system 100, for example allowing swiveling along one or tworotation axes. The touch-sensitive display screen 210 may alsooptionally be mounted to the POS system 100 in such a way as to allowrotation of the touch-sensitive display screen 210 as well, for exampleto rotate from a portrait mode to a landscape mode or vice versa, or torotate from a merchant-facing orientation to a buyer-facing orientation.The touch-sensitive display screen 210 is made up of the display screen120 and touch-sensitive screen surface layer 125 illustrated in FIG. 1and is connected to the main processor 105 and/or to the secureprocessor(s) 110 as illustrated in FIG. 1 and discussed with respect tothe display screen 120 and touch-sensitive screen surface layer 125 ofFIG. 1 .

The touch-sensitive display screen 210 may display, for example, a userinterface of a financial transaction application run via the processor105 by executing financial transaction application instructions storedin a memory of the POS device 100. The user interface may in some casesinclude an “add to cart” interface allowing the buyer or merchant toinput cart information identifying which items are being purchased bythe buyer. The main processor 105 renders receipt data corresponding toa receipt 240 to be printed by the printer 170 based on the cartinformation, and in some cases does so in real-time as items are beingadded to the cart in order to reduce power usage by the main processor105 during or near printing time, thereby avoiding exacerbating spikesin power usage during and around printing. Receipt data rendering may beperformed by a central processing unit (CPU) of the main processor 105,a graphics processing unit (GPU) of the main processor 105, or somecombination thereof. In some cases, the touch-sensitive display screen210 can display a visualization or preview of the receipt data to beprinted as the receipt 240 by the printer 170. The touch-sensitivedisplay screen 210 may use any type of display discussed in reference tothe display system 870 of FIG. 8 , and may use capacitive touch sensing,resistive touch sensing, inductive touch sensing, or some combinationthereof. For example, the touch-sensitive display screen 210 may utilizea Indium Tin Oxide (ITO) touch-sensitive layer or a printed inktouch-sensitive layer.

A receipt 240 is illustrated being output of a top-rear edge of the POSdevice 100. This receipt 240 is output by a printer 170 illustrated FIG.2 according to printer settings 165 in the printer controller 160 (notshown in FIG. 2 ).

The POS device 100 also includes a speaker 215 for outputting audio.Such audio can be associated with the financial transaction application,and can for example be output to indicate a successful transaction, toindicate a failed transaction, to indicate that a card or othertransaction object should be presented/inserted/swiped, to indicate thata card or other transaction object should be removed, to indicate that auser input such as a PIN code must be input via the touch-sensitivedisplay screen 210, to indicate that an input via the touch-sensitivedisplay screen 210 has been received, to indicate successful connectionvia any of the antennae of the POS system 100, to indicate failure toconnect via any of the antennae of the POS system 100, to indicate asignal strength associated with any of the antennae of the POS system100, or some combination thereof.

The perspective view of the POS device 100 illustrates the printer 170in the POS device 105, where the printer 170 is printing the receipt240. A roll of paper is visible through an side face of the printer 170in FIG. 2 . The paper may be thermal paper, contact paper, photo paper,or other specialized paper as required by the printer 170. In somecases, one or more face(s) of the POS device 100 may include doors (notshown) that open and close, for example enabling paper, ink, and/ortoner to be easily replaced in the printer 180, or enabling one or morebatterie(s) 260 to be easily replaced.

The perspective view of the POS device 100 also shows an externalconnector 180, which in FIG. 2 is illustrated as a USB type-C port. ThePOS device 100 may also or alternatively include at least one of aBluetooth®, Bluetooth® Low Energy (BLE), or Wi-Fi antenna internally toserve as external connectors 180.

The perspective view of the POS device 100 also shows an audio jack 240.The audio jack 240 may allow headphones or external speakers to beplugged into the POS device 100 to provide an alternative or additionalaudio output device to output the audio that the speakers 215 canoutput. Other peripherals, such as card readers or NFC readers, mayalternatively be connected via the audio jack 240. The audio jack 240may in some cases act as an external connector 180.

The POS device 100 may also include a power button 250 that can be usedto whether or not power is conveyed to the processor 105, thetouch-sensitive display screen 210, the transaction object reader(s)115, and/or other elements of the POS device 100. The POS device 100 maybe powered by the batterie(s) 260 discussed above, a connection to apower outlet, or some combination thereof. The connection to the poweroutlet or other power source may be made through the external connector180, the audio jack 240, a separate power port (not illustrated), orsome combination thereof, and may charge the batterie(s) 260 and/orpower at least a subset of the components of the POS device 100.

The POS device 100 may include one or more wireless antennae 270, whichmay include the Wi-Fi antenna 155 and the cellular network antenna 165illustrated in FIG. 1 . The one or more wireless antennae 270 mayadditionally or alternatively include, for example, a 802.11 Wi-Fiantenna, a Bluetooth® antenna, a Bluetooth® Low Energy (BLE) antenna, acellular network antenna, a NFC antenna, a radio frequencyidentification (RFID) antenna, an antenna for any other type ofcommunication discussed with respect to FIG. 8 , or some combinationthereof.

The POS device 100 may include one or more sensors 275, whosemeasurements may be fed into the main processor 105 or any otherprocessor(s) 265. The sensors 275 may include the temperature sensor 175of FIG. 1 for detecting high temperatures, which may indicateoverheating and/or for detecting low temperatures, which may increaseundervoltage risk, since batteries often do not function as well in lowtemperatures. The sensors 275 may include a camera (visible, infrared,ultraviolet, or some combination thereof) or ambient light sensor, whichmay for example be used to adjust the brightness and/or backlightbrightness of the display screen 120 of the touch-sensitive displayscreen 210 to match its surroundings, so that brightness is increasedwhere surroundings are bright to improve visibility, and so thatbrightness is decreased where surroundings are dim to avoid eyestrain.The sensors 275 may include biometric sensors, such as fingerprintscanners, palm scanners, iris/facial recognition detection (using one ormore cameras), voiceprint recognition (using one or more microphones),blood sensors, DNA sensors, or some combination thereof. Data frombiometric sensors may be encrypted along with transaction information orseparately, and may be verified (by the POS device 100 or by a remoteserver) against a database stored at the POS device 100 or at anotherdevice remote from the POS device 100.

The POS device 100 may in some cases include additional ports orcomponents not shown in the figures, such as an Ethernet port for wirednetworking capabilities, a SIM card slot and cellular antenna forcellular networking capabilities, or any other component illustrated inFIG. 8 or identified in the description of FIG. 8 .

FIG. 3 is a flow diagram illustrating undervoltage protection based onmodification of printer settings.

At step 305, the printer controller 160 has a particular printer settingassociated with the printer 170 set to a first printer setting value.Alternately or additionally, the main processor 105 has a particularmiscellaneous setting set to a first miscellaneous setting value. Theprinter setting may be one of multiple printer settings 165 controllableby the printer controller 160. The miscellaneous setting may be one ofmultiple miscellaneous settings 185 controllable by the main processor105 and stored in memory 135. Examples 505 of printer settings 165 andpossible corresponding printer setting values 510 are provided in FIG. 5. Examples 605 of miscellaneous settings 185 and possible correspondingmiscellaneous setting values 610 are provided in FIG. 6 .

At optional step 310, a measured temperature is detected at thetemperature sensor 175 and provided to the main processor 105.

At step 315, the main processor 105 determines a present power dischargecapability rate of the battery based on current conditions of the POSsystem 100 and/or of the battery 140. These current conditions mayinclude factors such as load associated with the components of the POSdevice 100, the setting values of the printer settings 165 andmiscellaneous settings 185, voltage sensor measurements from voltagesensors within the POS device 100, the model of the particular battery140 used, technical specifications of the particular battery 140 used,condition metrics of the particular battery 140 used, the measuredtemperature measured at the temperature sensor 175 in optional step 310,or some combination thereof. Battery technical specifications caninclude nominal voltage, cut-off voltage, capacity, nominal capacity,energy, nominal energy, cycle life, specific energy, specific power,energy density, power density, maximum continuous discharge current,maximum 30-sec discharge pulse current, charge voltage, float voltage,recommended charge current, maximum internal resistance, or somecombination thereof. Condition metrics of the particular battery 140 caninclude state of charge, depth of discharge, battery cycle life, batterycycle count, terminal voltage, open-circuit voltage, internalresistance, or some combination thereof. The present power dischargecapability rate can correspond to a given point or stretch of time inthe present and/or near future, and can sometimes be an amount ratherthan a rate.

The present power discharge capability rate may be calculated by themain processor 105 based a combination of the factors identified above,for example using the Peukert's equation. The present power dischargecapability rate, or some element of the calculation used in thePeukert's equation or another calculation, may be determined based onthe main processor 105 querying a battery data structure, such as abattery lookup table or battery database, for this information. Thebattery data structure may be stored in memory 135/820, mass storage 830within the POS system 100 or outside of it, or a network-accessiblesource on the Internet or a private network. The battery lookup table orbattery database can take the measured temperature and/or any of theother factors discussed above as a query for the battery data structure.The battery data structure can then return an estimated present powerdischarge capability rate or some variable that can be used by the mainprocessor 105 to calculate the present power discharge capability rategiven the other information available to the main processor 105.

At step 320, the main processor 105 calculates a first estimated powerdraw rate based on the first printer setting value for the printersetting identified in step 305 and/or the first miscellaneous settingvalue for the miscellaneous setting identified in step 305. The firstestimated power draw rate can correspond to the given point or stretchof time in the present and/or near future, and can sometimes be anamount rather than a rate. The first estimated power draw rate can bebased solely on the printer 170 due to its outsized influence on powerdraw, can be based solely on another high-draw component such as thetouch-sensitive display screen 210, or can be based on a sum power drawrate of a combination of components (optionally all of the components)of the POS device 100 estimated to be drawing power from the battery 140of the POS device 100 currently and/or in the near future within apredetermined amount of time. This can also be based on any settingsvalues set in the miscellaneous settings 185, for which examples aregiven in FIG. 7 . Calculation of the first estimated power draw rate mayalso be based on the measured temperature measured at the temperaturesensor 175 in optional step 310 in situations where temperature mayaffect power draw in predictable ways. The main processor 105 can useany combination of the factors identified with respect to step 315 incalculating the first estimated power draw rate based on as well.

Calculation of the first estimated power draw for the printer inparticular can be accomplished a number of ways. Calculation of thefirst estimated power draw for the printer can be based on the cartinformation discussed with respect to the touch-sensitive display screen210 regarding FIG. 2 . The cart information can be used to render thereceipt before printing, identifying exactly how many of whichcharacters will be in the receipt and at which lines of the receiptpaper, and identifying any images/graphics to be printed on the receiptand at what size. An energy draw estimate may be provided based onprinting of each character based on a lookup data structure thatidentified how much energy the printer 170 needs to print any givencharacter identified in a query. Alternately, energy draw estimate maybe provided based on printing of each character based on an estimatedaverage energy draw for printing of any character. Alternately, energydraw estimate may be provided based on printing of each character basedon an estimated maximum energy draw for printing of any character, thatis, of printing a completely black box character. The energy drawestimate can be generated line-by-line or for the entire receipt in thismanner, using either the chart information and energy draw estimates forthe specific characters therein, average line or page energy draws, ormaximum line or page energy draws (i.e., for a fully black line orpage).

At step 325, the main processor 105 calculates a difference between thepresent power discharge capability rate and the first estimated powerdraw rate at the given point or stretch of time in the present and/ornear future, and determines whether or not that difference is less thana predetermined difference threshold value 745 as illustrated in FIG. 7. If the first estimated power draw rate is greater than the presentpower discharge capability rate, then the first estimated power drawrate is in the blackout power draw range 750, and the difference isnegative and necessarily less than the positive difference thresholdvalue 745. If the first estimated power draw rate is less than thepresent power discharge capability rate but by a difference that is lessthan the difference threshold value 745, then the first estimated powerdraw rate is in the brownout risk power draw range 740. If the firstestimated power draw rate is less than the present power dischargecapability rate by a difference that is greater than the differencethreshold value 745, then the first estimated power draw rate is in thesafe power draw range 730 and needs no changes. Thus, if the differencebetween the present power discharge capability rate and the firstestimated power draw rate is greater than the predetermined differencethreshold value 745, then the first estimated power draw rate is withinthe safe power draw range 730, no changes are needed, and step 345 isnext. Otherwise, step 330 is next.

At step 330, the main processor 105 selects a second printer settingvalue for the printer setting and/or a second miscellaneous settingvalue for the miscellaneous setting. The second printer setting valueshould be different from the first printer setting value, and if theprocess has returned to step 330 after a “no” at step 335, alsodifferent from any other second printer setting value already tried.Likewise, the second miscellaneous setting value should be differentfrom the first printer setting value, and if the process has returned tostep 330 after a “no” at step 335, also different from any other secondmiscellaneous setting value already tried.

Also at step 330, the main processor 105 also calculates a secondestimated power draw rate based on the second printer setting value forthe printer setting identified in step 305 and/or the firstmiscellaneous setting value for the miscellaneous setting identified instep 305. The second estimated power draw rate corresponds to the givenpoint or stretch of time in the present and/or near future, and canrepresent an amount rather than a rate. This is done in much the sameway, or in a similar way, as how that main processor 105 calculated thefirst estimated power draw rate in step 320 based on the first printersetting value and/or the second miscellaneous setting value.

At step 335, the main processor 105 calculates a difference between thepresent power discharge capability rate and the second estimated powerdraw rate at the given point or stretch of time in the present and/ornear future, and determines whether or not that difference is less thanthe predetermined difference threshold value 745 as illustrated in FIG.7 . This is done in the way, or a similar way, to the differencecalculation and comparison to the predetermined difference thresholdvalue 745 of step 325. If the difference between the present powerdischarge capability rate and the second estimated power draw rate isstill less than the predetermined difference threshold value 745, thenthe main processor 105 can go back to step 330 and try again with a newsecond printer setting value that is different from the current secondprinter setting value. If there are no new second printer setting valuesleft to try for that printer setting, or if there are no new secondmiscellaneous setting values left to try for that miscellaneous setting,then the main processor 105 can go back to step 305 and try again with adifferent printer setting and/or miscellaneous setting. The mainprocessor 105 may alternatively or additionally try changing settingvalues for multiple printer settings and/or miscellaneous settingssimultaneously, or may go to step 405 of FIG. 4 to attempt serializationof actions, or may issue a warning to the user that it the POS device100 is about to shut down due to otherwise unavoidable brownout/blackoutrisk. If the difference between the present power discharge capabilityrate and the second estimated power draw rate is greater than thepredetermined difference threshold value 745, then the second estimatedpower draw rate is in the safe power draw range 730, no further changesare needed, and step 340 is next.

At step 340, the main processor 105 causes the printer controller 160 tochange the printer setting identified in step 305 from the first printersetting value to the second printer setting value. Alternately oradditionally, the main processor 105 changes the miscellaneous settingidentified in step 305 from the first miscellaneous setting value to thesecond miscellaneous setting value. At this point, the second estimatedpower draw rate should be within the safe power draw range 730 and thePOS device 100 can be permitted to continued operations.

At step 345, the main processor 105 indicates to the printer controller160 that the printer 170 can go ahead and print using the printersetting value(s) for the printer settings 165 established during theprocess of FIG. 3 , and/or using miscellaneous setting value(s) for themiscellaneous settings 185 established during the process of FIG. 3 .Because the process of FIG. 3 can apply to other actions besidesprinting, a different action by a different component can be performedat step 345 instead, but again, using the printer setting value(s) forthe printer settings 165 established during the process of FIG. 3 and/orusing miscellaneous setting value(s) for the miscellaneous settings 185established during the process of FIG. 3 . The process can then startover at step 305 next time a print job or other high-power action is tobe performed.

The process of FIG. 3 can be used for all actions performed by the POSdevice 100 or just for a subset of the actions performed by the POSdevice 100. For example, the process of FIG. 3 can be used only foractions performed by components that typically require high power drawlevels, such as the printer 170 or touch-sensitive display screen 210.In some cases, the temperature sensor 175 of the POS device 100 cantrigger the process of FIG. 3 by detecting that the measured temperaturewithin the POS device 100 is below a predetermined thresholdtemperature.

FIG. 4 is a flow diagram illustrating undervoltage protection based onserialization of actions.

At step 405, the POS system 100 is performing multiple actions inparallel. This may correspond to multiple actions by multiplecomponents, multiple processes/threads at the main processor 105 and/orsecure processor(s) 110, or some combination thereof.

At optional step 410, a measured temperature is detected at thetemperature sensor 175 and provided to the main processor 105.

At step 415, the main processor 105 determines a present power dischargecapability rate of the battery 140 based on current conditions of thePOS system 100 and/or of the battery 140. These current conditions mayinclude all of the multiple actions performed in parallel, measuredtemperature measured at the temperature sensor 175 in optional step 410,any of the factors identified in the description of step 315 of FIG. 3above, or some combination thereof. The present power dischargecapability rate of the battery 140 can be calculated or determined inany of the ways described in the description of step 315 of FIG. 3above.

At step 420, the main processor 105 calculates a first estimated powerdraw rate based on performing the multiple actions in parallel. Thefirst estimated power draw may be calculated based on the measuredtemperature measured at the temperature sensor 175 in optional step 410and/or any of the factors identified in the description of step 320 ofFIG. 3 above, and can be calculated or determined in any of the waysdescribed in the description of step 320 of FIG. 3 above.

At step 425, the main processor 105 calculates a difference between thepresent power discharge capability rate and the first estimated powerdraw rate at the given point or stretch of time in the present and/ornear future, and determines whether or not that difference is less thana predetermined difference threshold value 745 as illustrated in FIG. 7. This difference and comparison may be performed in any of the waysdescribed in the description of step 325 of FIG. 3 above. If thedifference between the present power discharge capability rate and thefirst estimated power draw rate is greater than the predetermineddifference threshold value 745, then the first estimated power draw rateis within the safe power draw range 730, no changes are needed, and step445 is next. Otherwise, step 430 is next.

At step 430, the main processor 105 calculates a second estimated powerdraw rate based on serializing at least a subset of the multiple actionsby the component(s) of the POS device 110 in comparison to the setup ofstep 405. That is, the main processor 105 calculates a second estimatedpower draw rate based on performance of at least the subset of themultiple actions in order, one after the other, rather than in parallel.The second estimated power draw may be calculated based on the measuredtemperature measured at the temperature sensor 175 in optional step 410and/or any of the factors identified in the description of step 320 orstep 330 of FIG. 3 above, and can be calculated or determined in any ofthe ways described in the description of step 320 or step 330 of FIG. 3above. The second estimated power draw rate based on a greater level ofserialization compared to the setup of step 405, and if, and if theprocess has returned to step 430 after a “no” at step 435, also agreater level of serialization and/or different serializationsetup/order than the one previously tried at step 435.

At step 435, the main processor 105 calculates a difference between thepresent power discharge capability rate and the second estimated powerdraw rate at the given point or stretch of time in the present and/ornear future, and determines whether or not that difference is less thanthe predetermined difference threshold value 745 as illustrated in FIG.7 . This difference and comparison may be performed in any of the waysdescribed in the description of step 325 or step 335 of FIG. 3 above. Ifthe difference between the present power discharge capability rate andthe first estimated power draw rate is still less than the predetermineddifference threshold value 745, then the main processor 105 can go backto step 430 and try again with a new serialization setup as describedabove with respect to step 430, for example by serializing all actionsinstead of just a subset, or by serializing a larger subset of actions,or by serializing a different subset of actions, or by serializingcertain actions in a different order, or some combination thereof. Themain processor 105 can go to step 305 of FIG. 3 and try settings changesalternatively or in addition to further attempts at serializationaccording to the process of FIG. 4 , or may issue a warning to the userthat the POS device 100 is about to shut down due to otherwiseunavoidable brownout/blackout risk. If the difference between thepresent power discharge capability rate and the second estimated powerdraw rate is greater than the predetermined difference threshold value745, then the second estimated power draw rate is within the safe powerdraw range 730, no further changes are needed, and step 440 is next.

At step 440, the main processor 105 ensures that when the multipleactions are performed, they are performed such that at least the subsetof the multiple actions are performed serially based on the setup and/ororder used in the calculation of the second estimated power draw rate ofstep 430, rather than performing the multiple actions in parallel as inthe setup of step 405.

At step 445, the main processor 105 causes the multiple actions to beperformed in accordance with any setup or order determined during theprocess of FIG. 4 . If the process of FIG. 4 was performed together withthe process of FIG. 3 , main processor 105 causes the multiple actionsto be performed using the printer setting value(s) for the printersettings 165 established during the process of FIG. 3 and/or usingmiscellaneous setting value(s) for the miscellaneous settings 185established during the process of FIG. 3 .

The process of FIG. 4 can be used any time parallel actions areperformed by the POS device 100 or just for a subset of the actionsparallel performed by the POS device 100. For example, the process ofFIG. 4 can be used when at least one of the parallel actions is to beperformed by components that typically require high power draw levels,such as the printer 170 or touch-sensitive display screen 210. In somecases, the temperature sensor 175 of the POS device 100 can trigger theprocess of FIG. 4 by detecting that the measured temperature within thePOS device 100 is below a predetermined threshold temperature.

The processes of FIG. 3 and FIG. 4 are intended not necessarily todecrease sums of power drawn overall by the components of the POS device100, though in some cases they may have this effect. The processes ofFIG. 3 and FIG. 4 instead focus on decreasing power drawn at times ofparticularly high power draw on the battery 140 of the POS device 100,preventing the POS device 100 from suffering from undervoltage,brownouts, or blackouts from having too many components performing toomany actions at the same time.

FIG. 5 is a chart illustrating multiple printer settings andcorresponding possible printer setting values. The chart of FIG. 5 listsa number of exemplary printer settings in a “printer setting” column 505and a number of corresponding possible printer setting values in a“possible printer setting values” column 510.

One printer setting 505 is printer speed, which may correspond to fast,medium, or slow possible printer setting values 510. Another printersetting 505 is black darkness, which identifies how darkly black (andoptionally other colors) appear on the printed paper and may correspondto an amount of ink used, an amount of thermal energy used by a thermalprint head, an amount of toner, an amount of energy used by a laser, orsome combination thereof. The black darkness printer setting maycorrespond to dark, medium, or light possible printer setting values510. Another printer setting 505 is print resolution, or a density ofprint dots or pixels on the printed page, which may correspond to high,medium or low possible printer setting values 510. Another printersetting 505 is print quality, which may correspond to high, medium orlow possible printer setting values 510. Another printer setting 505 isfont thickness or boldness, which may correspond to thick, medium, orthin possible printer setting values 510. Another printer setting 505 isfont size, which may correspond to large, medium or small possibleprinter setting values 510. Another printer setting 505 is the actualfont used, which may correspond to a “high-power font” used for titlesor at warm/hot temperatures or when there is power to spare, a“medium-power font” used for ordinary text and at ordinary/roomtemperatures, and a “low-power font” used when power is at a premiumand/or at low temperatures as possible printer setting values 510.Examples of a possible “high-power font,” a possible “medium-powerfont,” and a possible “low-power font” are provided in the possibleprinter setting values column 510 of FIG. 5 .

Another printer setting 505 is font spacing, also referred to as “fonttracking” in typography, which may correspond to expanded, normal orcondensed possible printer setting values 510. Examples of expandedtext, normal text, and condensed text are provided in the possibleprinter setting values column 510 of FIG. 5 . Another printer setting505 is size of printed images, which may correspond to large, medium orsmall possible printer setting values 510. The “size of printed images”printer setting may also be marked “images disabled” if power is at apremium and/or temperatures are low to indicate that images should notbe printed. Another printer setting 505 is removal of characters infavor of shorthand, used to shorten words to use less characters byusing abbreviations or shorthand, for example using “pymnt” instead of“payment.” The “removal of characters” printer setting may correspond toenabled or disabled possible printer setting values 510, or may in somecases allow an indication of degree to which abbreviations or shorthandshould be used.

Another printer setting 505 is printer power cycling, which involvesturning the printer on and off periodically, sometimes to allow anotheraction to be performed, sometimes simply to prevent power usage fromspiking too high by cycling rapidly. The printer power cycling settingmay correspond to enabled or disabled possible printer setting values510. Another printer setting 505 is “remove optional print content,”which concerns removing optional content, like coupons, merchant phonenumbers, merchant email addresses, merchant physical addresses, merchantsocial media accounts, other merchant contact information, merchantwebsite information, advertisements, bar codes or quick response (“QR”)codes, and other content that is often printed onto receipts in additionto a transaction summary. The “remove optional print content” settingmay correspond to possible printer setting values 510 such as enabledfor all optional print content, enabled for coupons only, enabled foradvertisements only, or disabled. Another printer setting 505 is “printpointer (QR code/link), which involves printing a pointer to morereceipt information, where the pointer is in the form of a QR codeand/or a link to a website. The “print pointer (QR code/link)” settingmay correspond to possible printer setting values 510 including “enabled(pointer+)” printing the pointer and the rest of the receipt, “enabled(pointer only)” printing only the pointer to allow the printer tominimize amount printed for when power is at a premium or temperaturesare low, or disabled.

Another printer setting 505 is disable printer, which involves disablingthe printer entirely, for example mandating electronic receipts overemail or handwritten receipts instead, for when power is at a premium ortemperatures are low. The disable printer setting may correspond toenabled or disabled possible printer setting values 510. Another printersetting 505 is “print in parallel with other functions,” which concernswhether the printer is allowed to print while the POS device 100 isperforming certain other functions, such as rendering images orreceipts, detecting touch via the touch-sensitive screen layer 125,reading transaction data via the transaction object(s) 115, oroutputting audio via the speaker 215 or audio jack 240. Certain otherfunctions, like continuing to run the main processor 105 and/or thedisplay screen 120, may be allowed or disabled as well. The “print inparallel with other functions” setting may correspond to enabled ordisabled possible printer setting values 510. Another printer setting505 is printed color spectrum, which identifies what range of colors theprinter is allowed to use in printing the receipt 240. The printed colorspectrum setting may correspond to possible printer setting values 510including full color, limited color, greyscale, or monochrome (i.e.,single ink/toner/thermal color such as black, cyan, magenta, yellow,red, green, or blue). Another printer setting 505 is print scale, whichidentifies at what scale the receipt data rendered by the main processor105 is to be printed onto the receipt paper. The print scale setting maycorrespond to possible printer setting values 510 including anypercentage value from 1 percent to 100 percent, and could optionallyalso include any percentage value beyond 100 percent, such as 200percent, 300 percent, 400 percent, 500 percent, or 1000 percent. Anotherprinter setting 505 is double sided print, which indicates whether theprinted should print on one side of the paper or on both sides. Thedouble sided print setting may correspond to enabled or disabledpossible printer setting values 510.

FIG. 6 is a chart illustrating multiple miscellaneous settings andcorresponding possible miscellaneous setting values. The chart of FIG. 6lists a number of exemplary miscellaneous settings in a “miscellaneoussetting” column 605 and a number of corresponding possible miscellaneoussetting values in a “possible miscellaneous setting values” column 610.

One miscellaneous setting 605 is processor clock speed pertaining to themain processor 105, which may correspond to fast, medium, or slowpossible miscellaneous setting values 610. Another miscellaneous setting605 is maximum number of processor cores used pertaining to the mainprocessor 105, which may correspond to possible miscellaneous settingvalues 610 including any number of processor cores between 1 and thetotal number of cores in the processor (N), which may for example be 8.Another miscellaneous setting 605 is maximum number of parallelprocesses allowed (optionally other than those relating to an operatingsystem, BIOS, or firmware) pertaining to the main processor 105, whichmay correspond to possible miscellaneous setting values 610 includingany integer number of processes 1 or greater, such as 1, 2, 3, 4, 5, 6,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, or 20. Anothermiscellaneous setting 605 is maximum number of parallel threads allowed(optionally other than those relating to an operating system, BIOS, orfirmware) pertaining to the main processor 105, which may correspond topossible miscellaneous setting values 610 including any integer numberof threads 1 or greater, such as 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15, 16, 17, 18, 19, or 20. Another miscellaneous setting 605 ismaximum number of active components of the POS device 100 allowed,optionally other than the main processor 105, which may correspond topossible miscellaneous setting values 610 including any integer numberof active components 1 or greater, such as 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, or 20. Another miscellaneoussetting 605 is GPU usage, which may correspond to possible miscellaneoussetting values 610 including enabled fully, enabled in a limitedcapacity (e.g., calculating power discharge capability rates,calculating estimated power draw rates, calculating differences betweenpower discharge capability rate and estimated power draw rates,rendering receipts, rendering interfaces for the display screen 120, orsome combination thereof), or disabled. Any of the miscellaneoussettings 605 identified in this paragraph can apply to one or both ofthe secure processor(s) 110 as well as the main processor 105, thoughone or both secure processor(s) 110 can optionally have their owncounterpart miscellaneous settings 605 not illustrated in FIG. 6 .

Another miscellaneous setting 605 is an NFC antenna poll rate, which maycorrespond to possible miscellaneous setting values 610 including fast,medium, or slow. Another miscellaneous setting 605 is an NFC antennatransfer speed, which may correspond to possible miscellaneous settingvalues 610 including fast, medium, or slow. Another miscellaneoussetting 605 is a Wi-Fi antenna poll rate, which may correspond topossible miscellaneous setting values 610 including fast, medium, orslow. Another miscellaneous setting 605 is a Wi-Fi antenna transferspeed, which may correspond to possible miscellaneous setting values 610including fast, medium, or slow. Another miscellaneous setting 605 is acellular network antenna poll rate, which may correspond to possiblemiscellaneous setting values 610 including fast, medium, or slow.Another miscellaneous setting 605 is a cellular network antenna transferspeed, which may correspond to possible miscellaneous setting values 610including fast, medium, or slow. Another miscellaneous setting 605 is aBluetooth® or Bluetooth® Low Energy (BLE) antenna poll rate, which maycorrespond to possible miscellaneous setting values 610 including fast,medium, or slow. Another miscellaneous setting 605 is a Bluetooth® orBluetooth® Low Energy (BLE) antenna transfer speed, which may correspondto possible miscellaneous setting values 610 including fast, medium, orslow.

Another miscellaneous setting 605 is a display screen brightness of thedisplay screen 120, which may correspond to possible miscellaneoussetting values 610 including bright, medium, or dim. Anothermiscellaneous setting 605 is a display screen backlight brightness ofthe display screen 120, which may correspond to possible miscellaneoussetting values 610 including bright, medium, or dim. Anothermiscellaneous setting 605 is “disable light sensor(s),” which may referto one or more light sensor(s) or camera(s) of the POS device 100 whichmay optionally be used to automatically control brightness of thedisplay screen 120 or the backlight of the display screen 120. The“disable light sensor(s)” setting may correspond to possiblemiscellaneous setting values 610 including enabled or disabled. Anothermiscellaneous setting 605 is a touch surface poll rate of thetouch-sensitive screen surface layer 125, which may correspond to howquickly/frequently voltage is driven across drive lines of thetouch-sensitive screen surface layer 125 and how quickly/frequentlyvoltage is sampled/sensed along sense lines of the touch-sensitivescreen surface layer 125. The touch surface poll rate setting maycorrespond to possible miscellaneous setting values 610 including fast(corresponding to a more sensitive touch surface), medium, or slow(corresponding to a less sensitive touch surface).

Another miscellaneous setting 605 is a “disable antenna while printing”setting, which may refer to any combination of the antennae of the POSdevice 100, and which may correspond to possible miscellaneous settingvalues 610 including enabled or disabled. Another miscellaneous setting605 is a “disable display while printing” setting, referring tofunctionality of the display screen 120, which may correspond topossible miscellaneous setting values 610 including enabled or disabled.Another miscellaneous setting 605 is a “disable touch sensitivity whileprinting” setting, referring to functionality of the touch-sensitivescreen surface layer 125, which may correspond to possible miscellaneoussetting values 610 including enabled or disabled. Another miscellaneoussetting 605 is a “pre-render receipt in cart” setting, pre-rendering ofthe receipt in real-time while items are being added to the cart in thecart interface discussed in reference to the touch-sensitive displayscreen 210 of FIG. 2 , which may correspond to possible miscellaneoussetting values 610 including enabled or disabled. Another miscellaneoussetting 605 is a “disable unused antennae” setting, which may refer toany combination of the antennae of the POS device 100 that are notcurrently in use and/or not predicted to be used in the near future, andwhich may correspond to possible miscellaneous setting values 610including enabled or disabled. Another miscellaneous setting 605 is a“disable biometric sensor(s)” setting, which may refer to anycombination of one or more biometric sensor(s) of the POS device 100,and which may correspond to possible miscellaneous setting values 610including enabled or disabled. Another miscellaneous setting 605 is a“disable temperature sensor(s)” setting, referring to the one or moretemperature sensor(s) 175, and which may correspond to possiblemiscellaneous setting values 610 including enabled or disabled. Anothermiscellaneous setting 605 is a “disable accelerometer/gyro(s)” setting,referring to the one or more accelerometer(s) and/or one or moregyroscope(s) that the POS device 100 may include, and which maycorrespond to possible miscellaneous setting values 610 includingenabled or disabled. Another miscellaneous setting 605 is a “disabletamper detection” setting, referring to the tamper detection circuitry130, and which may correspond to possible miscellaneous setting values610 including enabled or disabled. Another miscellaneous setting 605 isa “disable indicator light” setting, referring to the optional indicatorlight(s), and which may correspond to possible miscellaneous settingvalues 610 including enabled or disabled. Disabling of tamper detection,or any of the other settings changes discussed with regard to FIG. 5 orFIG. 6 , could be applied only temporarily and revert back immediatelyand automatically when power becomes more available and/or whentemperature rises, for example.

It should be understood that any of the possible printer setting values510 of FIG. 5 and possible miscellaneous setting values 610 of FIG. 6that indicate ranges of values may include any number of possible valuesalong that range rather than just the 2-4 possible values provided asexamples. This includes any range of values that, in FIG. 5 or FIG. 6 ,reads “Large, medium, small,” or “High, medium, low,” or “Dark, medium,light,” or “Fast, medium, slow,” or “Thick, medium, thin,” or “expanded,normal, condensed,” or “high power font, medium power font, low powerfont,” or “bright, medium, dim” or any variation thereof.

FIG. 7 is a bar chart comparing a power discharge capability rate torisk and safe power draw rates.

The bar chart of FIG. 7 starts at zero at a leftmost vertical axis, withbars stretching horizontally to the right in a positive direction. Apower discharge capability rate 705 is shown. The power dischargecapability rate 705 is broken into two ranges at a power draw riskthreshold value 735, with everything to the left of (less than) thepower draw risk threshold value 735 representing a safe power draw range730. Any estimated power draw rate falling in the safe power draw range730, such as the safe estimated power draw rate 720, is likely to besafe and not cause undervoltage/brownout/blackout.

Everything to the right of (greater than) the power draw risk thresholdvalue 735 but to the left of (less than) the rightmost edge of (theactual value of) the power discharge capability rate 705 represents abrownout risk power draw range 740. Any estimated power draw ratefalling in the brownout risk range power draw 740, such as the brownoutrisk estimated power draw rate 715, puts the POS device 100 at risk ofundervoltage/brownout/blackout.

Everything to the right of (greater than) the power discharge capabilityrate 705 represents a blackout power draw range 750, which continues tothe right beyond the bounds of the page. Any estimated power draw ratefalling in the blackout power draw range 750, such as theblackout-causing estimated power draw rate 710, will almost certainlyput the POS device 100 into undervoltage/brownout/blackout unless theactual power draw varies from estimates.

The predetermined difference threshold value 745, which is used in thecalculations of steps 325, 335, 425, and 435 of FIG. 3 and FIG. 4 ,respectively, is the difference between the power discharge capabilityrate 705 and the predetermined power draw risk threshold value 735representing the point between the safe power draw range 730 and thebrownout risk power draw power draw range 740 as illustrated in FIG. 7 .The power draw risk threshold value 735 may be a predetermined constant.The power draw risk threshold value 735 may be calculated based on thepresent power discharge capability rate and a predetermined constant,for example representing the predetermined constant subtracted from thepresent power discharge capability rate. The power draw risk thresholdvalue 735 may be calculated based on the present power dischargecapability rate and a predetermined percentage, for example representinga predetermined percentage of the present power discharge capabilityrate subtracted from the present power discharge capability rate,wherein the predetermined percentage is somewhere from zero percent to100 percent, such as 40 percent, 35 percent, 30 percent, 25 percent, 20percent, 15 percent, 10 percent, 5 percent, or some other percentagevalue.

While there are no units illustrated in FIG. 7 , it should be understoodthat the power discharge capability rate 705, the various power drawrates 710/715/720, the power draw risk threshold value 735, thedifference threshold value 745, the safe power draw range 730, thebrownout risk power draw range 740, and the blackout power draw range750 use the same units. These units may be power measurement units(e.g., watts, milliwatts, kilowatts), energy measurement units (e.g.,joules, millijoules, kilojoules), current measurement units (e.g.,amperes, milliamps, kiloamps), voltage measurement units (e.g., volts,millivolts, kilovolts), electric conductance measurement units (e.g.,siemens, millisiemens, kilosiemens), charge measurement units (e.g.,coloumbs, millicoloumbs, kilicoloumbs), resistance/reactance/impedancemeasurement units (e.g., ohms, milliohms, kiloohms), capacitancemeasurement units (e.g., farads, milli farads, kilofarads), inductancemeasurement units (e.g., henries, millihenries, kilohenries), frequencymeasurement units (e.g., hertz, millihertz, kilohertz), some product orfraction thereof, or some other combination thereof. The units may alsobe any of the units described above, or any product, fraction, or othercombination of the units described above, multiplied by or divided by aunit of time (e.g., milliseconds, seconds, minutes, hours) or a unit oftime squared (e.g., milliseconds², seconds², minutes², hours²). That is,power discharge capability rate and power draw as used herein need notbe in units of power, but may be in units used to describe energy,current, voltage, conductance, or any of the other types of unitsdiscussed above.

While the power discharge capability rate 705 and the various power drawrates 710/715/720 discussed with respect to FIG. 7 as well as FIG. 3 andFIG. 4 can be rates, it should be understood that they can also simplyrepresent power discharge capability amounts and various power drawamounts, respectively, each corresponding to the same particular periodof time. This period of time can be a period corresponding to the POSdevice 100 being on, a period corresponding to occurrence of aparticular action, such as printing a receipt 240 via a printer 170, aperiod corresponding to a sub-action such as printing a particularcharacter or line of the receipt 240, a period corresponding toperformance of over a predetermined number of actions in parallel, aperiod corresponding to a temperature measurement being below apredetermined threshold, or some combination thereof.

FIG. 8 illustrates an exemplary computing system 800 that may be used toimplement an embodiment of the present invention. For example, any ofthe computer systems or computerized devices described herein mayinclude at least one computing system 800, or may include at least onecomponent of the computer system 800 identified in FIG. 8 . Thecomputing system 800 of FIG. 8 includes one or more processors 810 andmemory 810. Main memory 810 stores, in part, instructions and data forexecution by processor 810. Main memory 810 can store the executablecode when in operation. The system 800 of FIG. 8 further includes a massstorage device 830, portable storage medium drive(s) 840, output devices850, user input devices 860, a graphics display 870, and peripheraldevices 880.

The components shown in FIG. 8 are depicted as being connected via asingle bus 890. However, the components may be connected through one ormore data transport means. For example, processor unit 810 and mainmemory 810 may be connected via a local microprocessor bus, and the massstorage device 830, peripheral device(s) 880, portable storage device840, and display system 870 may be connected via one or moreinput/output (I/O) buses.

Mass storage device 830, which may be implemented with a magnetic diskdrive or an optical disk drive, is a non-volatile storage device forstoring data and instructions for use by processor unit 810. Massstorage device 830 can store the system software for implementingembodiments of the present invention for purposes of loading thatsoftware into main memory 810.

Portable storage device 840 operates in conjunction with a portablenon-volatile storage medium, such as a floppy disk, compact disk orDigital video disc, to input and output data and code to and from thecomputer system 800 of FIG. 8 . The system software for implementingembodiments of the present invention may be stored on such a portablemedium and input to the computer system 800 via the portable storagedevice 840.

The memory 820, mass storage device 830, or portable storage 840 may insome cases store sensitive information, such as transaction information,health information, or cryptographic keys, and may in some cases encryptor decrypt such information with the aid of the processor 810. Thememory 820, mass storage device 830, or portable storage 840 may in somecases store, at least in part, instructions, executable code, or otherdata for execution or processing by the processor 810.

Output devices 850 may include, for example, communication circuitry foroutputting data through wired or wireless means, display circuitry fordisplaying data via a display screen, audio circuitry for outputtingaudio via headphones or a speaker, printer circuitry for printing datavia a printer, or some combination thereof. The display screen may beany type of display discussed with respect to the display system 870.The printer may be inkjet, laser/toner based, thermal, or somecombination thereof. In some cases, the output device circuitry 850 mayallow for transmission of data over an audio jack/plug, a microphonejack/plug, a universal serial bus (USB) port/plug, an Apple® Lightning®port/plug, an Ethernet port/plug, a fiber optic port/plug, a proprietarywired port/plug, a BLUETOOTH® wireless signal transfer, a BLUETOOTH® lowenergy (BLE) wireless signal transfer, a radio-frequency identification(RFID) wireless signal transfer, near-field communications (NFC)wireless signal transfer, 802.11 Wi-Fi wireless signal transfer,cellular data network wireless signal transfer, a radio wave signaltransfer, a microwave signal transfer, an infrared signal transfer, avisible light signal transfer, an ultraviolet signal transfer, awireless signal transfer along the electromagnetic spectrum, or somecombination thereof. Output devices 850 may include any ports, plugs,antennae, or any other components necessary for the communication typeslisted above, such as cellular Subscriber Identity Module (SIM) cards.

Input devices 860 may include circuitry providing a portion of a userinterface. Input devices 860 may include an alpha-numeric keypad, suchas a keyboard, for inputting alpha-numeric and other information, or apointing device, such as a mouse, a trackball, stylus, or cursordirection keys. Input devices 860 may include touch-sensitive surfacesas well, either integrated with a display as in a touchscreen, orseparate from a display as in a trackpad. Touch-sensitive surfaces mayin some cases detect localized variable pressure or force detection. Insome cases, the input device circuitry may allow for receipt of dataover an audio jack, a microphone jack, a universal serial bus (USB)port/plug, an Apple® Lightning® port/plug, an Ethernet port/plug, afiber optic port/plug, a proprietary wired port/plug, a BLUETOOTH®wireless signal transfer, a BLUETOOTH® low energy (BLE) wireless signaltransfer, a radio-frequency identification (RFID) wireless signaltransfer, near-field communications (NFC) wireless signal transfer,802.11 Wi-Fi wireless signal transfer, cellular data network wirelesssignal transfer, a radio wave signal transfer, a microwave signaltransfer, an infrared signal transfer, a visible light signal transfer,an ultraviolet signal transfer, a wireless signal transfer along theelectromagnetic spectrum, or some combination thereof. Input devices 860may include any ports, plugs, antennae, or any other componentsnecessary for the communication types listed above, such as cellular SIMcards.

Display system 870 may include a liquid crystal display (LCD), a plasmadisplay, an organic light-emitting diode (OLED) display, an electronicink or “e-paper” display, a projector-based display, a holographicdisplay, or another suitable display device. Display system 870 receivestextual and graphical information, and processes the information foroutput to the display device. The display system 870 may includemultiple-touch touchscreen input capabilities, such as capacitive touchdetection, resistive touch detection, surface acoustic wave touchdetection, or infrared touch detection. Such touchscreen inputcapabilities may or may not allow for variable pressure or forcedetection.

Peripherals 880 may include any type of computer support device to addadditional functionality to the computer system. For example, peripheraldevice(s) 880 may include a modem, a router, an antenna, a printer, abar code scanner, a quick-response (“QR”) code scanner, a document/imagescanner, a visible light camera, a thermal/infrared camera, anultraviolet-sensitive camera, a night vision camera, a light sensor, abattery, a power source, or some combination thereof.

The components contained in the computer system 800 of FIG. 8 are thosetypically found in computer systems that may be suitable for use withembodiments of the present invention and are intended to represent abroad category of such computer components that are well known in theart. Thus, the computer system 800 of FIG. 8 can be a personal computer,a hand held computing device, a telephone (“smart” or otherwise), amobile computing device, a workstation, a server (on a server rack orotherwise), a minicomputer, a mainframe computer, a tablet computingdevice, a wearable device (such as a watch, a ring, a pair of glasses,or another type of jewelry/clothing/accessory), a video game console(portable or otherwise), an e-book reader, a media player device(portable or otherwise), a vehicle-based computer, some combinationthereof, or any other computing device. The computer system 800 may insome cases be a virtual computer system executed by another computersystem. The computer can also include different bus configurations,networked platforms, multi-processor platforms, etc. Various operatingsystems can be used including Unix, Linux, Windows, Macintosh OS, PalmOS, Android, iOS, and other suitable operating systems.

In some cases, the computer system 800 may be part of a multi-computersystem that uses multiple computer systems 800, each for one or morespecific tasks or purposes. For example, the multi-computer system mayinclude multiple computer systems 800 communicatively coupled togethervia at least one of a personal area network (PAN), a local area network(LAN), a wireless local area network (WLAN), a municipal area network(MAN), a wide area network (WAN), or some combination thereof. Themulti-computer system may further include multiple computer systems 800from different networks communicatively coupled together via theinternet (also known as a “distributed” system).

The present invention may be implemented in an application that may beoperable using a variety of devices. Non-transitory computer-readablestorage media refer to any medium or media that participate in providinginstructions to a central processing unit (CPU) for execution and thatmay be used in the memory 820, the mass storage 830, the portablestorage 840, or some combination thereof. Such media can take manyforms, including, but not limited to, non-volatile and volatile mediasuch as optical or magnetic disks and dynamic memory, respectively. Someforms of non-transitory computer-readable media include, for example, afloppy disk, a flexible disk, a hard disk, magnetic tape, any othermagnetic medium, flash memory, memristor memory, any other solid-statememory, a CD-ROM disk, digital video disk (DVD), blu-ray disk (BDD), orany other optical medium, Random Access Memory (RAM), Read-Only Memory(ROM), programmable read-only memory (PROM), erasable programmableread-only memory (EPROM), electrically erasable programmable read-onlymemory (EEPROM), FLASHEPROM, Resistive random-access memory (RRAM orReRAM), Phase Change Memory (PCM), spin transfer torque RAM (STT-RAM),and any other memory chip or cartridge.

Various forms of transmission media may be involved in carrying one ormore sequences of one or more instructions to a CPU for execution. A buscarries the data to system RAM, from which a CPU retrieves and executesthe instructions. The instructions received by system RAM can optionallybe stored on a fixed disk either before or after execution by a CPU.Various forms of storage may likewise be implemented as well as thenecessary network interfaces and network topologies to implement thesame.

While various flow diagrams provided and described above may show aparticular order of operations performed by certain embodiments of theinvention, it should be understood that such order is exemplary.Alternative embodiments may perform the operations in a different order,combine certain operations, overlap certain operations, or somecombination thereof.

The foregoing detailed description of the technology has been presentedfor purposes of illustration and description. It is not intended to beexhaustive or to limit the technology to the precise form disclosed.Many modifications and variations are possible in light of the aboveteaching. The described embodiments were chosen in order to best explainthe principles of the technology, its practical application, and toenable others skilled in the art to utilize the technology in variousembodiments and with various modifications as are suited to theparticular use contemplated. It is intended that the scope of thetechnology be defined by the claim.

The invention claimed is:
 1. A method for ordering actions at a point ofsale (POS) device, the method comprising: identifying that a pluralityof actions are to be performed in parallel by the POS device accordingto one or more settings of the POS device; determining a plurality ofresource utilization rates corresponding to the plurality of actions,wherein each of the plurality of resource utilization corresponds toperformance of one of the plurality of actions by the POS device;calculating a first estimated resource utilization rate corresponding toperformance of the plurality of actions in parallel by the POS devicebased on a sum of the plurality of resource utilization rates; receivinga measured temperature detected by a temperature sensor that is coupledto a battery of the POS device; determining, based on the measuredtemperature detected by the temperature sensor that is coupled to thebattery, a resource utilization capability rate, wherein a resourceutilization rate that exceeds the resource utilization capability rateis associated with risk of blackout for the POS device; identifying thata difference between the resource utilization capability rate and thefirst estimated resource utilization rate is less than a differencethreshold associated with risk of brownout for the POS device; andcausing the POS device to perform the plurality of actions serially atleast in part by changing the one or more settings of the POS deviceautomatically in response to identifying that the difference between theresource utilization capability rate and the first estimated resourceutilization rate is less than the difference threshold, wherein thefirst estimated resource utilization rate is an estimated power drawrate, wherein the resource utilization capability rate is a power drawcapability rate, and wherein the difference threshold is a power drawrate difference.
 2. The method of claim 1, further comprising:determining a second estimated resource utilization rate correspondingto the plurality of actions being performed serially by the POS device;and identifying that a second difference between the resourceutilization capability rate and the second estimated resourceutilization rate is greater than or equal to the difference threshold.3. The method of claim 1, wherein causing the POS device to perform theplurality of actions serially prevents an actual resource utilizationrate of the POS device while performing the plurality of actionsserially from coming within the difference threshold of the resourceutilization capability rate.
 4. The method of claim 1, furthercomprising: identifying that the first estimated resource utilizationrate falls within a brownout risk resource utilization range based onidentifying that the difference is less than the difference threshold.5. The method of claim 1, wherein the POS device includes a plurality ofcomponents, and wherein each of the plurality of actions are performedby different subsets of the plurality of components of the POS device.6. The method of claim 5, wherein the plurality of components of the POSdevice include a processor of the POS device.
 7. The method of claim 5,wherein the plurality of components of the POS device include a printerof the POS device.
 8. The method of claim 7, further comprising:identifying that the printer is to print with a printer setting set to afirst printer setting value; and changing a printer setting from thefirst printer setting value to a second printer setting value, thesecond printer setting value associated with a lower estimated resourceutilization rate than the first printer setting value, causing theprinter to print with the printer setting set to the second printersetting value.
 9. The method of claim 1, further comprising: identifyingone or more additional actions other than the plurality of actions; andcausing the POS device to perform the one or more additional actions inparallel with one of the plurality of actions while the POS deviceperforms the plurality of actions serially.
 10. The method of claim 9,wherein a maximum number of parallel actions is not exceeded due toperformance of the one or more additional actions in parallel withperformance of the one of the plurality of actions serially.
 11. Themethod of claim 1, wherein the temperature sensor includes one or morethermistors.
 12. The method of claim 1, wherein the wherein theplurality of actions include a first action of a first action type and asecond action of a second action type that is distinct from the firstaction type.
 13. The method of claim 1, wherein the plurality of actionsinclude at least a first action to be performed using a first componentof the POS device and a second action to be performed using a secondcomponent of the POS device, wherein the first component and the secondcomponent are distinct component types relative to one another, whereinperformance of the plurality of actions in parallel by the POS deviceincludes use of the first component and the second component inparallel, wherein performance of the plurality of actions serially bythe POS device includes use of the first component and the secondcomponent serially.
 14. The method of claim 1, further comprising:determining the difference threshold based on the resource utilizationcapability rate.
 15. The method of claim 1, further comprising:determining the difference threshold based on a predetermined percentageof the resource utilization capability rate.
 16. The method of claim 1,further comprising: determining the difference threshold based on aconstant and the resource utilization capability rate.
 17. The method ofclaim 1, further comprising: in response to identifying that thedifference is less than the difference threshold, changing a second setof one or more settings at the POS device to cause the POS device todisable, from an enabled state, at least one of: an action to beperformed using the POS device, a component of the POS device, or afunction of the POS device.
 18. A system for ordering actions, thesystem comprising: a memory storing instructions; and a processor thatexecutes the instructions, wherein execution of the instructions by theprocessor causes the processor to: identify that a plurality of actionsare to be performed in parallel by one or more components according toone or more settings associated with the one or more components,determine a plurality of resource utilization rates corresponding to theplurality of actions, wherein each of the plurality of resourceutilization rates corresponds to performance of one of the plurality ofactions by the one or more components, calculate a first estimatedresource utilization rate corresponding to performance of the pluralityof actions in parallel by one or more components based on a sum of theplurality of resource utilization rates, receive a measured temperaturedetected by a temperature sensor coupled to a battery that is configuredto provide power to the one or more components, determine, based on themeasured temperature detected by the temperature sensor that is coupledto the battery, a resource utilization capability rate, wherein aresource utilization rate that exceeds the resource utilizationcapability rate is associated with risk of blackout for the one or morecomponents, identify that a difference between the resource utilizationcapability rate and the first estimated resource utilization rate isless than a difference threshold associated with risk of brownout forthe one or more components, and cause performance of the plurality ofactions serially by the one or more components at least in part bychanging the one or more settings associated with the one or morecomponents automatically in response to identifying that the differencebetween the resource utilization capability rate and the first estimatedresource utilization rate is less than the difference threshold, whereinthe first estimated resource utilization rate is an estimated power drawrate, wherein the resource utilization capability rate is a power drawcapability rate, and wherein the difference threshold is a power drawrate difference.
 19. The system of claim 18, wherein the one or morecomponents include the processor.
 20. The system of claim 18, whereinexecution of the instructions by the processor causes the processor tofurther: determine a second estimated resource utilization ratecorresponding to the plurality of actions being performed serially bythe one or more components, and identify that a second differencebetween the resource utilization capability rate and the secondestimated resource utilization rate is greater than or equal to thedifference threshold.
 21. A non-transitory computer readable storagemedium having embodied thereon a program, wherein the program isexecutable by a processor to perform a method of ordering actions, themethod comprising: identifying that a plurality of actions are to beperformed in parallel by one or more components according to one or moresettings associated with the one or more components; determining aplurality of resource utilization rates corresponding to the pluralityof actions, wherein each of the plurality of resource utilization ratescorresponds to performance of one of the plurality of actions by the oneor more components; calculating a first estimated resource utilizationrate corresponding to performance of the plurality of actions inparallel by the one or more components based on a sum of the pluralityof resource utilization rates; receiving a measured temperature detectedby a temperature sensor coupled to a battery that is configured toprovide power to the one or more components; determining, based on themeasured temperature detected by the temperature sensor that is coupledto the battery, a resource utilization capability rate, wherein aresource utilization rate that exceeds the resource utilizationcapability rate is associated with risk of blackout for the one or morecomponents; identifying that a difference between the resourceutilization capability rate and the first estimated resource utilizationrate is less than a difference threshold associated with risk ofbrownout for the one or more components; and causing the one or morecomponents to perform the plurality of actions serially at least in partby changing the one or more settings associated with the one or morecomponents automatically in response to identifying that the differencebetween the resource utilization capability rate and the first estimatedresource utilization rate is less than the difference threshold, whereinthe first estimated resource utilization rate is an estimated power drawrate, wherein the resource utilization capability rate is a power drawcapability rate, and wherein the difference threshold is a power drawrate difference.